package com.tbit.uqbike.webmanager.util;

import com.tbit.uqbike.manager.exception.BaseException;
import org.apache.commons.collections.CollectionUtils;

import java.util.List;

/**
 * 断言
 *
 * @author Leon
 * 2013-10-15 上午10:41:45
 */
public abstract class Assert {

    /**
     * 非Null断言
     *
     * @param object
     * @param message
     */
    public static void notNull(Object object, String message) {
        if (object == null) {
            throw new BaseException(message);
        }
    }

    /**
     * 空串断言
     *
     * @param text
     * @param message
     */
    public static void hasLength(String text, String message) {
        if (!(text != null && text.length() > 0)) {
            throw new BaseException(message);
        }
    }

    /**
     * 非空&空串断言
     *
     * @param text
     * @param message
     */
    public static void notNullAndHasLength(String text, String message) {
        if (text == null || text.isEmpty()) {
            throw new BaseException(message);
        }
    }

    /**
     * 非空&空串断言
     *
     * @param text
     * @param message
     */
    public static void isTrue(Boolean isTrue, String message) {
        if (isTrue == null || !isTrue) {
            throw new BaseException(message);
        }
    }

    public static void notNulls(String message, Object... objects) {
        for (Object o : objects) {
            if (o == null) {
                throw new BaseException(message);
            }
            if (o instanceof String && "".equals(o.toString())) {
                throw new BaseException(message);
            }
        }
    }

    /**
     * 非空&小于指定长度
     *
     * @param text
     * @param message
     */
    public static void notNullCheckLength(String text,int length, String message) {
        if (text == null || text.isEmpty() || text.length() > length) {
            throw new BaseException(message);
        }
    }

    /**
     * @description: 判断集合不为空，并且拥有等于或超过指定长度
     * @author: mo.shanyong
     * @date: 2025/2/19 16:44
     * @param: list
     * @param: len 指定长度，最小为1
     */
    public static void notEmptyAndHasAppointLen(List list,int len,String message){
        len = Math.max(len, 1);
        if (CollectionUtils.isEmpty(list) || list.size() < len ){
            throw new BaseException(message);
        }
    }
}
